> Aptos Options Protocol
Aptos Options Protocol
A decentralized options-trading protocol on Aptos for European-style, cash-settled BTC/USDC and ETH/USDC options. Full collateralization, Pyth Network for spot and volatility, and an on-chain Black-Scholes implementation for pricing.
Cash-settled means there's no underlying asset delivery at expiry β payout is in USDC against the oracle price.
Repo
github.com/LucianoLupo/options_protocol
How it works
| Step | What happens |
|------|--------------|
| Writing | Writer deposits collateral β vault locks the funds β ShortPosition is created. |
| Buying | Buyer pays the premium β premium goes to the series pool β LongPosition is created. |
| Settlement | After expiry β Pyth provides the spot price β payout is calculated β both positions are consumed. |
Writers must lock 125% of the maximum loss as collateral, so the protocol stays solvent regardless of market moves between writing and expiry. Concretely:
- Call options:
max(spot, strike) Γ amount Γ 1.25 - Put options:
strike Γ amount Γ 1.25
Contract architecture
The Move codebase is split by concern, not by feature, which makes the settlement engine and the pricing logic independently auditable.
| Module | Responsibility |
|--------|----------------|
| options.move | Public entry points (buy, write, settle) |
| series.move | Option series lifecycle and registry |
| collateral.move | USDC vault β deposits, withdrawals, locking |
| settlement.move | European-style cash-settlement engine |
| oracle.move | Pyth integration for prices and volatility |
| margin.move | Collateral-requirement calculations |
| pricing.move | On-chain Black-Scholes implementation |
| types.move | Core data structures |
Tech stack
- Smart contracts: Move (Aptos)
- Oracle: Pyth Network for spot prices and volatility
- Frontend: React + TypeScript + Vite
- Wallet: Aptos Wallet Adapter
Why Aptos / Move
Two reasons it's interesting to do this on Aptos rather than Solidity:
- Move's resource model maps cleanly to options positions. A
LongPositionorShortPositionis a resource the user actually holds in their account β not a row in a contract-owned mapping. Transfers, settlement, and slashing become resource operations the type system enforces, instead of accounting bugs waiting to happen. - On-chain Black-Scholes is more tractable when you're not paying L1 EVM gas for every
expandln. Aptos's parallel execution and lower per-op cost make it reasonable to keep the pricing model on-chain instead of trusting an off-chain quoter.
Status
Reference implementation. Not audited, not deployed to mainnet. The codebase is the artifact β designed to be readable as a study of how to structure a derivative protocol in Move, with the pricing and settlement layers separated cleanly enough that someone could swap in a different pricing model or asset.
Connection points
- Sits in the same web3-defi thread as Rug Scanner (defensive tooling) and SatsPilot (LATAM defi UX), but takes the opposite angle β instead of consumer UX, it's protocol-design machinery.
- The Pyth + on-chain pricing pattern is the same one I'd reach for in any Aptos-based defi project.